Flutter RenderBox

RenderObject 是 Flutter 三颗树中最终执行绘制的,Widget 最终会被拆解为一系列 RenderObject 进行绘制。RenderObject 拥有许多派生类,其中一个派生类是 RenderBox,表示使用 2D 坐标系。除此之外,还有其它派生类,比如使用极坐标坐标系的。

继承自 RenderObject,RenderBox 的主要能力包括:


派生类

有大量继承类:

子类派生

为什么继承:创造一种新的布局模型、绘制模型、点击测试模型,或者新的语义模型。

但遵守笛卡尔坐标系。如果不遵守笛卡尔坐标系,考虑基于 RenderObject 继承。

子元素

如果 Render Object 是叶子节点,不能拥有子元素。例子是 RenderImage 和 RenderParagraph。

对于带有子元素的 Render Object,有 4 中常见场景:

一个 RenderBox 子元素,这种情况考虑继承这俩:

一个子元素,但是不是 RenderBox,此时使用 RenderObjectWithChildMixin。

一个子元素列表,此时使用 ContainerRenderObjectMixin。

第四类是复杂子元素模型,不满足的都放在这一类里。

网络资源


本文作者:Maeiee

本文链接:Flutter RenderBox

版权声明:如无特别声明,本文即为原创文章,版权归 Maeiee 所有,未经允许不得转载!


喜欢我文章的朋友请随缘打赏,鼓励我创作更多更好的作品!